home *** CD-ROM | disk | FTP | other *** search
- /****************************************************************************
- ** $Id: qlistview.h,v 2.53 1998/07/03 00:09:51 hanord Exp $
- **
- ** Definition of QListView widget class
- **
- ** Created : 970809
- **
- ** Copyright (C) 1992-1998 Troll Tech AS. All rights reserved.
- **
- ** This file is part of Qt Free Edition, version 1.40.
- **
- ** See the file LICENSE included in the distribution for the usage
- ** and distribution terms, or http://www.troll.no/free-license.html.
- **
- ** IMPORTANT NOTE: You may NOT copy this file or any part of it into
- ** your own programs or libraries.
- **
- ** Please see http://www.troll.no/pricing.html for information about
- ** Qt Professional Edition, which is this same library but with a
- ** license which allows creation of commercial/proprietary software.
- **
- *****************************************************************************/
-
- #ifndef QLISTVIEW_H
- #define QLISTVIEW_H
-
- class QStrList;
- class QPixmap;
- class QFont;
- class QHeader;
-
- class QListView;
- struct QListViewPrivate;
-
-
- #ifndef QT_H
- #include "qscrollview.h"
- #endif // QT_H
-
-
- class QListViewItem
- {
- public:
- QListViewItem( QListView * parent );
- QListViewItem( QListViewItem * parent );
- QListViewItem( QListView * parent,
- const char *, const char * = 0,
- const char * = 0, const char * = 0,
- const char * = 0, const char * = 0,
- const char * = 0, const char * = 0 );
- QListViewItem( QListViewItem * parent,
- const char *, const char * = 0,
- const char * = 0, const char * = 0,
- const char * = 0, const char * = 0,
- const char * = 0, const char * = 0 );
- virtual ~QListViewItem();
-
- virtual void insertItem( QListViewItem * );
- virtual void removeItem( QListViewItem * );
-
- int height() const { return ownHeight; }
- virtual void invalidateHeight();
- int totalHeight() const;
- virtual int width( const QFontMetrics&,
- const QListView*, int column) const;
- void widthChanged(int column=-1) const;
- int depth() const;
-
- virtual void setText( int, const char * );
- virtual const char * text( int ) const;
-
- virtual void setPixmap( int, const QPixmap & );
- virtual const QPixmap * pixmap( int ) const;
-
- virtual const char * key( int, bool ) const;
- virtual void sortChildItems( int, bool );
-
- int childCount() const { return nChildren; }
-
- bool isOpen() const { return open && nChildren>0; } // ###
- virtual void setOpen( bool );
- virtual void setup();
-
- virtual void setSelected( bool );
- bool isSelected() const { return selected; }
-
- virtual void paintCell( QPainter *, const QColorGroup & cg,
- int column, int width, int alignment );
- virtual void paintBranches( QPainter * p, const QColorGroup & cg,
- int w, int y, int h, GUIStyle s );
- virtual void paintFocus( QPainter *, const QColorGroup & cg,
- const QRect & r );
-
- QListViewItem * firstChild() const;
- QListViewItem * nextSibling() const { return siblingItem; }
- QListViewItem * parent() const;
-
- QListViewItem * itemAbove();
- QListViewItem * itemBelow();
-
- QListView *listView() const;
-
- virtual void setSelectable( bool enable );
- bool isSelectable() const { return selectable; }
-
- virtual void setExpandable( bool );
- bool isExpandable() { return expandable; }
-
- void repaint() const;
-
- protected:
- virtual void enforceSortOrder() const;
- virtual void setHeight( int );
- virtual void activate();
-
- private:
- void init();
- int ownHeight;
- int maybeTotalHeight;
- int nChildren;
-
- uint lsc: 14;
- uint lso: 1;
- uint open : 1;
- uint selected : 1;
- uint selectable: 1;
- uint configured: 1;
- uint expandable: 1;
- uint is_root: 1;
-
- QListViewItem * parentItem;
- QListViewItem * siblingItem;
- QListViewItem * childItem;
-
- void * columns;
-
- friend class QListView;
- };
-
-
- class QListView: public QScrollView
- {
- Q_OBJECT
- public:
- QListView( QWidget * parent = 0, const char * name = 0 );
- ~QListView();
-
- int treeStepSize() const;
- virtual void setTreeStepSize( int );
-
- virtual void insertItem( QListViewItem * );
- virtual void clear();
-
- QHeader * header() const;
-
- virtual int addColumn( const char * label, int size = -1);
- virtual void setColumnText( int column, const char * label );
- const char* columnText( int column ) const;
- virtual void setColumnWidth( int column, int width );
- int columnWidth( int column ) const;
- enum WidthMode { Manual, Maximum };
- virtual void setColumnWidthMode( int column, WidthMode );
- WidthMode columnWidthMode( int column ) const;
-
- virtual void setColumnAlignment( int, int );
- int columnAlignment( int ) const;
-
- void show();
-
- QListViewItem * itemAt( const QPoint & screenPos ) const;
- QRect itemRect( const QListViewItem * ) const;
- int itemPos( const QListViewItem * );
-
- void ensureItemVisible( const QListViewItem * );
-
- void repaintItem( const QListViewItem * ) const;
-
- virtual void setMultiSelection( bool enable );
- bool isMultiSelection() const;
- virtual void setSelected( QListViewItem *, bool );
- bool isSelected( QListViewItem * ) const;
- virtual void setOpen( QListViewItem *, bool );
- bool isOpen( QListViewItem * ) const;
-
- virtual void setCurrentItem( QListViewItem * );
- QListViewItem * currentItem() const;
-
- QListViewItem * firstChild() const;
-
- virtual void setAllColumnsShowFocus( bool );
- bool allColumnsShowFocus() const;
-
- virtual void setItemMargin( int );
- int itemMargin() const;
-
- virtual void setRootIsDecorated( bool );
- bool rootIsDecorated() const;
-
- virtual void setSorting( int column, bool increasing = TRUE );
-
- void setStyle( GUIStyle );
- void setFont( const QFont & );
- void setPalette( const QPalette & );
-
- bool eventFilter( QObject * o, QEvent * );
-
- QSize sizeHint() const;
-
- public slots:
- void triggerUpdate();
-
- signals:
- void selectionChanged();
- void selectionChanged( QListViewItem * );
- void currentChanged( QListViewItem * );
-
- void doubleClicked( QListViewItem * );
- void returnPressed( QListViewItem * );
- void rightButtonClicked( QListViewItem *, const QPoint&, int );
- void rightButtonPressed( QListViewItem *, const QPoint&, int );
-
- protected:
- void mousePressEvent( QMouseEvent * e );
- void mouseReleaseEvent( QMouseEvent * e );
- void mouseMoveEvent( QMouseEvent * e );
- void mouseDoubleClickEvent( QMouseEvent * e );
-
- void focusInEvent( QFocusEvent * e );
- void focusOutEvent( QFocusEvent * e );
-
- void keyPressEvent( QKeyEvent *e );
-
- void resizeEvent( QResizeEvent *e );
-
- void drawContentsOffset( QPainter *, int ox, int oy,
- int cx, int cy, int cw, int ch );
-
- virtual void paintEmptyArea( QPainter *, const QRect & );
- void enabledChange( bool );
-
- protected slots:
- void updateContents();
-
- private slots:
- void changeSortColumn( int );
- void updateDirtyItems();
- void handleSizeChange( int, int, int );
-
- private:
- void updateGeometries();
- void buildDrawableList() const;
- void reconfigureItems();
- void widthChanged(const QListViewItem*, int c);
-
- QListViewPrivate * d;
-
- friend class QListViewItem;
- };
-
-
- class QCheckListItem : public QListViewItem
- {
- public:
- enum Type { RadioButton, CheckBox, Controller };
-
- QCheckListItem( QCheckListItem *parent, const char *text,
- Type = Controller );
- QCheckListItem( QListView *parent, const char *text,
- Type = Controller );
- QCheckListItem( QListViewItem *parent, const char *text,
- const QPixmap & );
- QCheckListItem( QListView *parent, const char *text,
- const QPixmap & );
-
- void paintCell( QPainter *, const QColorGroup & cg,
- int column, int width, int alignment );
- int width( const QFontMetrics&, const QListView*, int column) const;
- void setup();
-
- void setOn( bool );
- bool isOn() const { return on; }
- Type type() const { return myType; }
- const char *text() const { return QListViewItem::text( 0 ); }
- const char *text( int n ) const { return QListViewItem::text( n ); }
-
- protected:
- void paintBranches( QPainter * p, const QColorGroup & cg,
- int w, int y, int h, GUIStyle s );
-
- void activate();
- void turnOffChild();
- virtual void stateChange( bool );
-
- private:
- void init();
- Type myType;
- bool on;
- QCheckListItem *exclusive;
-
- void *reserved;
- };
-
-
- #endif // QLISTVIEW_H
-